//TODO clean up includes
#include <cv.h>
#include <highgui.h>
#include "abstractProbabilityTransformer.hpp"
#include "abstractFilter.hpp"
#include "resourceTracker.h"
#include "faceDetector.h"
#include "AbstractHandTracker.hpp"
#include "HIVideoCapture.hpp"
#include "handLocaliser.hpp"
#include "AbstractHandTrackerTest.hpp"

#include <iostream>
#include "gtest.h"

#include "HandTrackerLKGREYwMSwBPwBGESwFOx.hpp"


//FIXNOW: normalise error according to tracking rect size? (include both normalised and raw error)

using namespace cv;



class HandTrackerLKGREYwMSwBPwBGESwFOxTest : public ::AbstractHandTrackerTest {
protected:
	void setHandTracker(int trackerCode);
};


void HandTrackerLKGREYwMSwBPwBGESwFOxTest::setHandTracker(int trackerCode) {
	
	switch ( trackerCode ) {
		
		case A0B10FO0:
			ht = HandTrackerLKGREYwMSwBPwBGESwFOx::init(
												   hl->getProbabilityTransformer(), trackingRect, frame,
												   Ptr< AbstractFilter >(new OpenFilter(0)), 0.0, 1.0 );
			
		default:
			ASSERT_TRUE(false);
			break;
	}
}



TEST_F(HandTrackerLKGREYwMSwBPwBGESwFOxTest, a0b10fo0locVid1c ) {
	testTracker( A0B10FO0, "locVid1c" );
}
